package com.zmc.lostfound.auth.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.zmc.lostfound.auth.entity.RoleEntity;
import com.zmc.lostfound.auth.vo.RoleSaveVO;
import com.zmc.lostfound.common.utils.PageParams;
import com.zmc.lostfound.common.utils.PageResult;
import com.zmc.lostfound.common.utils.Result;

import java.util.List;

/**
 * @author ZMC
 * @description 角色信息管理业务接口
 * @email 2869581855@qq.com
 * @date 2023-07-05 15:17:37
 */
public interface RoleService extends IService<RoleEntity> {

    /**
     * 分页模糊查询角色信息
     *
     * @param pageParams 分页参数
     * @return PageResult
     */
    PageResult queryPage(PageParams pageParams);

    /**
     * 按id查询角色信息
     *
     * @param id 角色id
     * @return RoleEntity
     */
    RoleEntity queryInfoById(Long id);

    /**
     * 按用户id查询角色信息
     *
     * @param userId 用户id
     * @return List<RoleEntity>
     */
    List<RoleEntity> queryInfoByUserId(Long userId);

    /**
     * 按权限id查询角色信息
     *
     * @param permissionId 权限id
     * @return List<RoleEntity>
     */
    List<RoleEntity> queryInfoByPermissionId(Long permissionId);

    /**
     * 新增角色信息
     *
     * @param roleSaveVO 角色信息新增/修改请求体
     * @return Result
     */
    Result insertRole(RoleSaveVO roleSaveVO);

    /**
     * 修改角色信息
     *
     * @param roleSaveVO 角色信息新增/修改请求体
     * @return Result
     */
    Result updateRole(RoleSaveVO roleSaveVO);

    /**
     * 按角色id删除角色信息
     *
     * @param roleId 角色id
     * @return Result
     */
    Result deleteByRoleId(Long roleId);

}

